<?php

namespace CMS\Service;

class Model
{
    /**
     *
     * @var array 
     */
    private static $list;
    
    /**
     *
     * @var string 
     */
    private static $cacheKey = 'DOCUMENT_MODEL_LIST';
    
    /**
     * 获取所有文档模型信息
     * @return array
     */
    public static function all()
    {
        /* 读取缓存数据 */
        if (empty(static::$list)) {
            static::$list = S(static::$cacheKey);
        }

        /* 获取模型名称 */
        if (empty(static::$list)) {
            static::$list = M('Model')
                    ->where(['status' => 1, 'extend' => 1])
                    ->field(true)
                    ->index('id')
                    ->select();
            
            S(static::$cacheKey, static::$list); // 更新缓存
        }
        
        return static::$list;
    }
    
    /**
     * 获取指定一条文档模型信息
     * @param int $id
     * @return array
     */
    public static function one($id)
    {
        $list = \CMS\Service\Model::all();
        
        return isset($list[$id]) ? $list[$id] : [];
    }
    
    /**
     * 获取指定一条文档模型字段
     * @param int $id
     * @param string $field
     * @return string
     */
    public static function field($id, $field)
    {
        $one = \CMS\Service\Model::one($id);
        
        return isset($one[$field]) ? $one[$field] : '';
    }
}

